//
// Created by Scave on 2025/8/28.
//

#ifndef RIDER3D_SCENEEVENT_H
#define RIDER3D_SCENEEVENT_H

#include "Define.h"
#include "entityx/Event.h"
#include "component/BasicComponents.h"

NS_RIDER_BEGIN

    class Scene;
    class SceneLoadEvent : Event<SceneLoadEvent> {
    public:
        SceneLoadEvent(Scene* scene);

        Scene* scene;
    };

    class SceneUnLoadEvent : Event<SceneUnLoadEvent> {
    public:
        SceneUnLoadEvent(Scene* scene);

        Scene* scene;
    };

    class SceneUpdatedEvent : Event<SceneUpdatedEvent> {
    public:
        SceneUpdatedEvent(Scene* scene);

        Scene* scene;
    };

    class CameraChangeEvent : Event<CameraChangeEvent> {
    public:
        CameraChangeEvent(Camera& camera);

        Camera& camera;
    };

    class OnPauseEvent : Event<OnPauseEvent> {
    };

    class OnResumeEvent : Event<OnResumeEvent> {
    };

NS_RIDER_END

#endif //RIDER3D_SCENEEVENT_H
